Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Memory virtualization</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Memory_virtualization"> <link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Memory_virtualization rootpage-Memory_virtualization skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Memory virtualization</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p>In <a href="Computer_science" title="Computer science">computer science</a>, <b>memory virtualization</b> decouples volatile <a href="Random_access_memory" class="mw-redirect" title="Random access memory">random access memory</a> (RAM) resources from individual systems in the data center, and then aggregates those resources into a virtualized memory pool available to any computer in the cluster. The memory pool is accessed by the operating system or applications running on top of the operating system. The distributed memory pool can then be utilized as a high-speed cache, a messaging layer, or a large, shared memory resource for a CPU or a GPU application.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Description">Description</h2></div>
<p>Memory virtualization allows networked and therefore distributed servers to share a pool of memory to overcome physical memory limitations, a common bottleneck in software performance. With this capability integrated into the network, applications can take advantage of a very large amount of memory to improve overall performance, system utilization, increase memory usage efficiency, and enable new use cases. Software on the memory pool nodes (servers) allows nodes to connect to the memory pool to contribute memory, and store and retrieve data. Management software and the technologies of <a href="Memory_overcommitment" title="Memory overcommitment">memory overcommitment</a> manage shared memory, data insertion, eviction and provisioning policies, data assignment to contributing nodes, and handles requests from client nodes. The memory pool may be accessed at the application level or operating system level. At the application level, the pool is accessed through an API or as a networked file system to create a high-speed shared memory cache. At the operating system level, a page cache can utilize the pool as a very large memory resource that is much faster than local or networked storage.
</p><p>Memory virtualization implementations are distinguished from <a href="Shared_memory_architecture" class="mw-redirect" title="Shared memory architecture">shared memory</a> systems. Shared memory systems do not permit abstraction of memory resources, thus requiring implementation with a single operating system instance (i.e. not within a clustered application environment).
</p><p>Memory virtualization is also different from storage based on flash memory such as <a href="Solid-state_drive" title="Solid-state drive">solid-state drives</a> (SSDs) - SSDs and other similar technologies replace hard-drives (networked or otherwise), while memory virtualization replaces or complements traditional RAM.
</p>
<div class="mw-heading mw-heading2"><h2 id="Products">Products</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.rnanetworks.com/cache-architecture">RNA networks Memory Virtualization Platform</a> - A low latency memory pool, implemented as a <a rel="nofollow" class="external text" href="http://www.rnanetworks.com/products/rnacache">shared cache</a> and a <a rel="nofollow" class="external text" href="http://www.rnanetworks.com/products/rnamessenger">low latency messaging</a> solution.</li>
<li><a rel="nofollow" class="external text" href="http://scalemp.com">ScaleMP</a> - A platform to combine resources from multiple computers for the purpose of creating a single computing instance.</li>
<li><a rel="nofollow" class="external text" href="https://www.nyse.com/technologies/1207087035761.html">Wombat Data Fabric</a> – A memory based messaging fabric for delivery of market data in financial services.</li>
<li><a href="Oracle_Coherence" title="Oracle Coherence">Oracle Coherence</a> is a Java-based in-memory data-grid product by <a href="Oracle_Corporation" title="Oracle Corporation">Oracle</a></li>
<li>AppFabric Caching Service is a <a href="Distributed_cache" title="Distributed cache">distributed cache</a> platform for in-memory caches spread across multiple systems, developed by <a href="Microsoft" title="Microsoft">Microsoft</a>.</li>
<li>IBM Websphere extremeScale is a Java-based distributed cache much like Oracle Coherence</li>
<li><a href="GigaSpaces" title="GigaSpaces">GigaSpaces</a> XAP is a Java based in-memory computing software platform like Oracle Coherence and VMware Gemfire</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Implementations">Implementations</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Application_level_integration">Application level integration</h3></div>
<p>In this case, applications running on connected computers connect to the memory pool directly through an API or the file system.
</p>

<div class="mw-heading mw-heading3"><h3 id="Operating_System_Level_Integration">Operating System Level Integration</h3></div>
<p>In this case, the operating system connects to the memory pool, and makes pooled memory available to applications.
</p>

<div class="mw-heading mw-heading2"><h2 id="Background">Background</h2></div>
<p>Memory virtualization technology follows from <a href="Memory_management" title="Memory management">memory management</a> architectures and <a href="Virtual_memory" title="Virtual memory">virtual memory</a> techniques. In both fields, the path of innovation has moved from tightly coupled relationships between logical and physical resources to more flexible, abstracted relationships where physical resources are allocated as needed.
</p><p>Virtual memory systems abstract between physical RAM and virtual addresses, assigning virtual memory addresses both to physical RAM and to disk-based storage, expanding addressable memory, but at the cost of speed. <a href="Non-Uniform_Memory_Access" class="mw-redirect" title="Non-Uniform Memory Access">NUMA</a> and <a href="Symmetric_multiprocessing" title="Symmetric multiprocessing">SMP</a> architectures optimize memory allocation within multi-processor systems. While these technologies dynamically manage memory within individual computers, memory virtualization manages the aggregated memory of multiple networked computers as a single memory pool.
</p><p>In tandem with <a href="Memory_management" title="Memory management">memory management</a> innovations, a number of virtualization techniques have arisen to make the best use of available hardware resources. <a href="Application_virtualization" title="Application virtualization">Application virtualization</a> was demonstrated in mainframe systems first. The next wave was <a href="Storage_virtualization" title="Storage virtualization">storage virtualization</a>, as servers connected to storage systems such as <a href="Network-attached_storage" title="Network-attached storage">NAS</a> or <a href="Storage_area_network" title="Storage area network">SAN</a> in addition to, or instead of, on-board hard disk drives. Server virtualization, or <a href="Full_virtualization" class="mw-redirect" title="Full virtualization">Full virtualization</a>, partitions a single physical server into multiple <a href="Virtual_machine" title="Virtual machine">virtual machines</a>, consolidating multiple instances of operating systems onto the same machine for the purpose of efficiency and flexibility. In both storage and server virtualization, the applications are unaware that the resources they are using are virtual rather than physical, so efficiency and flexibility are achieved without application changes. In the same way, memory virtualization allocates the memory of an entire networked cluster of servers among the computers in that cluster.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Virtual_memory" title="Virtual memory">Virtual memory</a> - Traditional memory virtualization on a single computer, typically using the <a href="Memory_management_unit" title="Memory management unit">MMU</a> to translate between virtual and physical memory addresses</li>
<li><a href="In-memory_database" title="In-memory database">In-memory database</a> - Provides faster and more predictable performance than disk-based databases</li>
<li><a href="I/O_virtualization" title="I/O virtualization">I/O virtualization</a> - Creates virtual network and storage endpoints which allow network and storage data to travel over the same fabrics (XSigo I/O Director)</li>
<li><a href="Storage_virtualization" title="Storage virtualization">Storage virtualization</a> - Abstracts logical storage from physical storage (NAS, SAN, File Systems (NFS, cluster FS), Volume Management, RAID)</li>
<li><a href="RAM_disk" class="mw-redirect" title="RAM disk">RAM disk</a> - Virtual storage device within a single computer, limited to capacity of local RAM.</li>
<li><a href="InfiniBand" title="InfiniBand">InfiniBand</a></li>
<li><a href="10_Gigabit_Ethernet" title="10 Gigabit Ethernet">10 Gigabit Ethernet</a></li>
<li><a href="Distributed_shared_memory" title="Distributed shared memory">Distributed shared memory</a></li>
<li><a href="Remote_direct_memory_access" title="Remote direct memory access">Remote direct memory access</a> (RDMA)</li>
<li><a href="Locality_of_reference" title="Locality of reference">Locality of reference</a></li>
<li><a href="Single-system_image" class="mw-redirect" title="Single-system image">Single-system image</a></li>
<li><a href="Distributed_cache" title="Distributed cache">Distributed cache</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */


.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}


/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li>Oleg Goldshmidt, <a rel="nofollow" class="external text" href="https://web.archive.org/web/20061003044736/http://cs.haifa.ac.il/courses/AdvancedOS/VirtualMachines.pdf">Virtualization: Advanced Operating Systems </a></li>
<li><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.informationweek.com/news/software/server_virtualization/showArticle.jhtml?articleID=214200462">"Startup RNA Networks Virtualizes Memory Across Multiple Servers"</a>. <i><a href="InformationWeek" title="InformationWeek">InformationWeek</a></i>. February 13, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">March 24,</span> 2009</span>.</cite></li>
<li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090316092054/http://blogs.computerworld.com/five_virtualization_trends_to_watch">"Five Virtualization Trends to Watch"</a>. <i><a href="Computerworld" title="Computerworld">Computerworld</a></i>. February 3, 2009. Archived from <a rel="nofollow" class="external text" href="http://blogs.computerworld.com/five_virtualization_trends_to_watch">the original</a> on March 16, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">March 24,</span> 2009</span>.</cite></li>
<li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090214033753/http://blogs.zdnet.com/virtualization/?p=655">"RNA networks and Memory Virtualization"</a>. <i><a href="ZDNet" class="mw-redirect" title="ZDNet">ZDNet</a></i>. February 2, 2009. Archived from <a rel="nofollow" class="external text" href="http://blogs.zdnet.com/virtualization/?p=655">the original</a> on February 14, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">March 24,</span> 2009</span>.</cite></li>
<li><cite id="CITEREFKusnetzky2007" class="citation web cs1">Kusnetzky, Dan (January 28, 2007). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070703001457/http://blogs.zdnet.com/virtualization/?p=170">"Sorting out the different layers of virtualization"</a>. <i>ZDNet</i>. Archived from <a rel="nofollow" class="external text" href="http://blogs.zdnet.com/virtualization/?p=170">the original</a> on July 3, 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">March 24,</span> 2009</span>.</cite></li></ul>
</div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-11-08" href="https://en.wikipedia.org/wiki/?title=Memory_virtualization&amp;oldid=1256146247">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>